Ne yapmal²?
Bu problemi τ÷zmek iτin AUTOEXEC.BAT dosyan²zda WindowsÆunuzun yerini belirleyen PATH tan²m²n² sⁿrⁿcⁿ ismi vermeden kullan²n. "\WINDOWS", "\WIN31" gibi...
E≡er Visual Basic 3.0 kullan²yorsan²z ve ⁿzerinde τal²■t²≡²n²z projeyi File * Make EXE File komutunu seτerek EXE haline getirdiyseniz programda hiτ de≡i■iklik yapmadan bir daha derledi≡inizde program²n boyunda gereksiz bir uzama oldu≡unu g÷rⁿrsⁿnⁿz. Program ona de≡i■iklik yapmad²≡²n²z ve derledi≡iniz her seferinde daha da uzar!
╟ok ilginτtir ki bu sayede meydana gelen EXE dosyalar WINDOWS alt²nda hiτ sorun τ²karmadan τal²■abiliyor...
Ne yapmal²?
Bunu ÷nlemek iτin program² derlemeden ÷nce ⁿzerinde ufak bir de≡i■iklik yap²n. ╓rne≡in programda kulland²≡²n²z formlardan birini bir milimetre yana kayd²r²n. B÷ylece VB 3.0 ayn² proje iτin eski EXEÆyi silip yepyeni bir EXE yarat²r.
VB 1.0, 2.0 ya da 3.0 kullan²yorsan²z "Illegal function call" or "Division by zero" gibi "genel" hata mesajlar² ile s²k s²k kar■²la■²yorsan²z suτu pek te kendinizde aramay²n. ╟ⁿnkⁿ Visual BasicÆin kar²■²k i■lemlerden s²k s²k kafas² kar²■²r! ╓rne≡in a■a≡²daki i■lem matematik i■lemcisi olan bir bilgisayarda "Illegal Function Call" hatas²n²n ekrana gelmesine neden olur
test = 1 + (1 + 1 * (1 * (1 + 1 ^ 1)))
A■a≡²daki i■lem ise, yine matematik i■lemcili bir bilgisayarda "Division by zero" (Bir say²n²n s²f²ra b÷lⁿnmesi) hatas²n² veriyor
test = 1 + (1 - 1 * (1 + 1 / 1 ^ 1))
Visual Basic 4.0 ise b÷yle bir program hatas² bar²nd²rm²yor. Yani programlama dilinizin akl²n² istedi≡iniz kadar kar²■t²rabilirsiniz.
Ne Yapmal²?
Bu problemi τ÷zmek iτin i■lemin kar²■²k parτalar²n² daha basit parτalara ay²r²p ayr² ayr² hesaplat²lmas²n² sa≡layabilirsiniz.
E≡er VB 1.0, 3.0 veya 4.0 kullan²yorsan²z (Yani herhangi bir sⁿrⁿmⁿnⁿ) seτim kutusu kontrolⁿndeki bir programlama hatas²n² yakalam²■ olabilirsiniz. Bir form ⁿzerine iki yada daha fazla seτenek kutusu koydu≡unuzda ve program² τal²■t²rd²≡²n²zda bu kutulardan mutlaka biri seτili durumda olmal²d²r. Zaten kutucu≡un mant²≡² da budur, kullan²c²n²n mutlaka bir seτene≡i seτmesini sa≡lamak... Kontrol bu ■ekilde kullan²ld²≡²nda sorunsuz olarak τal²■²yor fakat kutucuklar² frameÆlerle (gruplama kontrolⁿ) ay²rd²≡²n²zda bir sorun τ²k²yor. Ayr² gruplara ayr²lm²■ olan seτim kutular²ndan ÷rne≡in ikinci grupta bir seτene≡in mutlaka i■aretli olmas² gerekirken b÷yle olmuyor.
Ne yapmal²?
Bu sorunu τ÷zmek τok basit, formun yⁿklenmesi esnas²nda 4. seτenek kutusunu aktif yapmak iτin ■÷yle bir sat²r kullanabilirsiniz:
Sub Form[say²].Load() Option4.Value = True End Sub
Ne Yapmal²? Bu programlama hatas²n² gidermek oldukτa zor. Program²n²zda CTRL+TAB tu■ kombinasyonunu ele geτirip WindowsÆun otomatik olarak yapt²≡²n² siz program²n²za yapt²rmal²s²n²z. En kolay τ÷zⁿm formlardan hiτbiri aktif olmad²≡²nda formun aktif olmas² iτin ⁿzerine bir kere t²klamak...
E≡er Visual Basic 3.0 kullan²yorsan²z VBÆnin yaz²c² ile olan problemlerinden birini bilmenizde fayda var.
Program²n²z τal²■²rken "Varsay²lan Yaz²c²"n²z² de≡i■tirirseniz Printer.Fonts ÷zelli≡inin gⁿncellenmedi≡ini g÷rⁿrsⁿnⁿz.
Ne yapmal²?
Bu problem Visual Basic 4.0Æda giderilmi■ ama yine de VB 3.0 kullananlara yard²mc² olal²m.
Program²n²z²n iτerisinde ■u sat²rlar² kullan²rsan²z probleminizin giderildi≡ini g÷rⁿrsⁿnⁿz:
æYaz²c²daki D÷kⁿman² Sonland²r... Printer.EndDoc æBo■ bir sayfa bas. Printer.Print ""Bu τ÷zⁿmⁿn tek dezavantaj² yaz²c²dan bo■ bir ka≡²t τ²karmas²d²r. Ama yine de Printer.Font ÷zelli≡inin gⁿncellenmesini ve program²n yeni yaz²c²y² tan²mas²n² sa≡l²yor...
E≡er Visual Basic 3.0 veya daha geri sⁿrⁿmlerini kullan²yorsan²z ²zgara (grid) kontrolⁿnⁿzde ufak bir sorun var demektir, τⁿnkⁿ Visual Basic bazen gereksiz yere ²zgara kontrolⁿnⁿn kayd²rma τubuklar²n² ortaya τ²kar²yor. Kontrolⁿn "ScrollBars" ÷zelli≡ini 3 (Both) yapt²ysan²z, son sⁿtunla ²zgara penceresi aras²nda sⁿtun geni■li≡inin yar²s² kadar veya daha az yer varsa bu hata ortaya τ²k²yor.
Ne Yapmal²?
Bu problemi gidermek iτin ilgili formun yⁿklenme koduna a■a≡²daki sat²rlar² ekleyin.
Kayd²rma τubu≡u yok edilip geri getirildi≡inde sorun τ÷zⁿlⁿyor...
Sub Form_Load () 'Kayd²rma ╟ubu≡u Ayarlar²n² Kaydet kaydet% = Grid1.ScrollBars Grid1.ScrollBars = 0 'Kayd²rma τubuklar²n² kald²r Grid1.ScrollBars = kaydet% '╟ubuklar² geri getir End SubVisual Basic 4.0Æda bu programlama hatas² giderilmi■.
Visual Basic 3.0 kullan²yorsan²z sⁿrⁿcⁿ kontrolⁿnde bulunan bir hatay²
bilmenizde sonsuz fayda var.
Sⁿrⁿcⁿ kontrolⁿ, dosya listesi kontrolⁿ ve ilgili di≡er kontrolleri
birarada kulland²≡²n²zda problem ortaya τ²k²yor. Formun ⁿzerinde bir sⁿrⁿcⁿ
bir de dizin kontrolⁿ oldu≡unu varsayal²m.
Drive1 kontrolⁿnⁿn refresh ÷zelli≡ine dir1.path = drive1.drive kodunu
eklemenize ra≡men a: sⁿrⁿcⁿsⁿne ikinci bir kere geτti≡inizde sⁿrⁿcⁿnⁿn
iτeri≡i tazelenmeyecek ve sⁿrⁿcⁿde disket olmasa bile hata meydana gelmeyecektir.
Ne Yapmal²?
Bu problemi gidermek iτin drive1 kontrolⁿnⁿn refresh ÷zelli≡ine drive1.refresh
sat²r²n² eklemelisiniz. ▌■inizi garantiye almak istiyorsan²z ayn² zamanda
refresh isimli bir komut butonu olu■turarak bunun iτerisine a■a≡²daki kodlar²
da girebilirsiniz.
drive1.refresh
dir1.refresh
file1.refresh